package com.guigu.tms.commons.aggregation.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 企业
 * </p>
 *
 * @author wj
 * @since 2022-10-21
 */
@TableName("d_tenant")
public class Tenant implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 企业编码
     */
    private String code;

    /**
     * 企业名称
     */
    private String name;

    /**
     * 类型
#{CREATE:创建;REGISTER:注册}
     */
    private String type;

    /**
     * 状态
#{NORMAL:正常;FORBIDDEN:禁用;WAITING:待审核;REFUSE:拒绝}
     */
    private String status;

    /**
     * 是否内置
     */
    private Boolean readonly;

    /**
     * 责任人
     */
    private String duty;

    /**
     * 有效期
为空表示永久
     */
    private LocalDateTime expirationTime;

    /**
     * logo地址
     */
    private String logo;

    /**
     * 企业简介
     */
    private String describe;

    /**
     * 用户密码有效期
单位：天 0表示永久有效

     */
    private Integer passwordExpire;

    /**
     * 是否多地登录
     */
    private Boolean isMultipleLogin;

    /**
     * 密码输错次数
密码输错锁定账号的次数
单位：次

     */
    private Integer passwordErrorNum;

    /**
     * 账号锁定时间
密码输错${passwordErrorNum}次后，锁定账号的时间
单位： h | d | w | m
单位： 时 | 天 | 周 | 月
如：0=当天晚上24点 2h = 2小时   2d = 2天  
     */
    private String passwordErrorLockTime;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 创建人
     */
    private Long createUser;

    /**
     * 修改时间
     */
    private LocalDateTime updateTime;

    /**
     * 修改人
     */
    private Long updateUser;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }
    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }
    public Boolean getReadonly() {
        return readonly;
    }

    public void setReadonly(Boolean readonly) {
        this.readonly = readonly;
    }
    public String getDuty() {
        return duty;
    }

    public void setDuty(String duty) {
        this.duty = duty;
    }
    public LocalDateTime getExpirationTime() {
        return expirationTime;
    }

    public void setExpirationTime(LocalDateTime expirationTime) {
        this.expirationTime = expirationTime;
    }
    public String getLogo() {
        return logo;
    }

    public void setLogo(String logo) {
        this.logo = logo;
    }
    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }
    public Integer getPasswordExpire() {
        return passwordExpire;
    }

    public void setPasswordExpire(Integer passwordExpire) {
        this.passwordExpire = passwordExpire;
    }
    public Boolean getIsMultipleLogin() {
        return isMultipleLogin;
    }

    public void setIsMultipleLogin(Boolean isMultipleLogin) {
        this.isMultipleLogin = isMultipleLogin;
    }
    public Integer getPasswordErrorNum() {
        return passwordErrorNum;
    }

    public void setPasswordErrorNum(Integer passwordErrorNum) {
        this.passwordErrorNum = passwordErrorNum;
    }
    public String getPasswordErrorLockTime() {
        return passwordErrorLockTime;
    }

    public void setPasswordErrorLockTime(String passwordErrorLockTime) {
        this.passwordErrorLockTime = passwordErrorLockTime;
    }
    public LocalDateTime getCreateTime() {
        return createTime;
    }

    public void setCreateTime(LocalDateTime createTime) {
        this.createTime = createTime;
    }
    public Long getCreateUser() {
        return createUser;
    }

    public void setCreateUser(Long createUser) {
        this.createUser = createUser;
    }
    public LocalDateTime getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(LocalDateTime updateTime) {
        this.updateTime = updateTime;
    }
    public Long getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(Long updateUser) {
        this.updateUser = updateUser;
    }

    @Override
    public String toString() {
        return "Tenant{" +
            "id=" + id +
            ", code=" + code +
            ", name=" + name +
            ", type=" + type +
            ", status=" + status +
            ", readonly=" + readonly +
            ", duty=" + duty +
            ", expirationTime=" + expirationTime +
            ", logo=" + logo +
            ", describe=" + describe +
            ", passwordExpire=" + passwordExpire +
            ", isMultipleLogin=" + isMultipleLogin +
            ", passwordErrorNum=" + passwordErrorNum +
            ", passwordErrorLockTime=" + passwordErrorLockTime +
            ", createTime=" + createTime +
            ", createUser=" + createUser +
            ", updateTime=" + updateTime +
            ", updateUser=" + updateUser +
        "}";
    }
}
